package cn.wolfcode.luowowo.respository;

import cn.wolfcode.luowowo.domain.Destination;
import cn.wolfcode.luowowo.domain.Region;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户持久层接口
 */
@Repository
public interface DestinationRespository extends MongoRepository<Destination, String> {

    /**
     * 根据 深度deep 查询目的地
     *
     * @param deep
     * @return
     */
    List<Destination> findByDeep(int deep);

    /**
     * 根据区域id 查询目的地
     *
     * @param refIds
     * @return
     */
    List<Destination> findByIdIn(List<String> refIds);

    /**
     * 根据 深度deep 查询目的地 <=3 范围的
     *
     * @param deep
     * @return
     */
    List<Destination> findByDeepLessThanEqual(int deep);

    /**
     * 查询国内目的地
     *
     * @param 中国
     * @return
     */
    List<Destination> findByParentName(String 中国);

    /**
     * 查询目的地的子目的地  例如 广东下面的 广州东莞等市
     *
     * @param parentId 目的地中的父亲id
     * @param of       Jpa使用  PageRequest对象 用来限定查询的范围
     * @return
     */
    List<Destination> findByParentId(String parentId, PageRequest of);

    /**
     * 根据名字查询目的地的
     * @param destName
     * @return
     */
    Destination findByName(String destName);
}
